{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--BOOK_INFORMATION-->\n",
    "<a href=\"https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv\" target=\"_blank\"><img align=\"left\" src=\"data/cover.jpg\" style=\"width: 76px; height: 100px; background: white; padding: 1px; border: 1px solid black; margin-right:10px;\"></a>\n",
    "*This notebook contains an excerpt from the book [Machine Learning for OpenCV](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv) by Michael Beyeler.\n",
    "The code is released under the [MIT license](https://opensource.org/licenses/MIT),\n",
    "and is available on [GitHub](https://github.com/mbeyeler/opencv-machine-learning).*\n",
    "\n",
    "*Note that this excerpt contains only the raw code - the book is rich with additional explanations and illustrations.\n",
    "If you find this content useful, please consider supporting the work by\n",
    "[buying the book](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv)!*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Implementing Agglomerative Hierarchical Clustering](08.04-Implementing-Agglomerative-Hierarchical-Clustering.ipynb) | [Contents](../README.md) | [Understanding Perceptrons](09.01-Understanding-perceptrons.ipynb) >"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Using Deep Learning to Classify Handwritten Digits\n",
    "\n",
    "In this chapter, we want to wrap our heads around some simple versions of artificial neural\n",
    "nets, such as the McCulloch-Pitts neuron, the [perceptron](09.01-Understanding-Perceptrons.ipynb),\n",
    "and the [multi-layer perceptron](09.02-Implementing-a-Multi-Layer-Perceptron-in-OpenCV.ipynb).\n",
    "Once we have familiarized ourselves with the basics, we will be ready to implement a more\n",
    "[sophisticated deep neural net](09.03-Getting-Acquainted-with-Deep-Learning.ipynb)\n",
    "in order to classify handwritten digits from the popular\n",
    "[MNIST database](09.04-Classifying-Handwritten-Digits.ipynb)\n",
    "(short for Mixed National Institute of Standards and Technology\n",
    "database). For this, we will be making use of [Keras](09.05-Training-a-Deep-Neural-Net-Using-Keras.ipynb), \n",
    "a high-level neural network library,\n",
    "which is also frequently used by researchers and tech companies.\n",
    "\n",
    "Along the way, we want to get answers to the following questions:\n",
    "- How do I implement perceptrons and multilayer perceptrons in OpenCV?\n",
    "- What is the difference between stochastic and batch gradient descent, and how does it fit in with backpropagation?\n",
    "- How do I know what size my neural net should be?\n",
    "- How can I use Keras to build sophisticated deep neural networks?\n",
    "\n",
    "\n",
    "## Outline\n",
    "\n",
    "- [Understanding Perceptrons](09.01-Understanding-Perceptrons.ipynb)\n",
    "- [Implementing a Multi-Layer Perceptron in OpenCV](09.02-Implementing-a-Multi-Layer-Perceptron-in-OpenCV.ipynb)\n",
    "- [Getting Acquainted with Deep Learning](09.03-Getting-Acquainted-with-Deep-Learning.ipynb)\n",
    "- [Training an MLP in OpenCV to Classify Handwritten Digits](09.04-Training-an-MLP-in-OpenCV-to-Classify-Handwritten-Digits)\n",
    "- [Training a Deep Neural Net to Classify Handwritten Digits Using Keras](09.05-Training-a-Deep-Neural-Net-to-Classify-Handwritten-Digits-Using-Keras)\n",
    "\n",
    "> The book offers a detailed treatment of the McCulloch-Pitts neuron, the perceptron, multi-layer perceptrons, and backrpopagation. For more information on the same, please refer to the book.\n",
    "\n",
    "\n",
    "Excited? Then let's go!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Implementing Agglomerative Hierarchical Clustering](08.04-Implementing-Agglomerative-Hierarchical-Clustering.ipynb) | [Contents](../README.md) | [Understanding Perceptrons](09.01-Understanding-perceptrons.ipynb) >"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
